#include "bookquerywidget.h"

#include "ElaComboBox.h"
#include "ElaLineEdit.h"
#include "ElaTableView.h"
#include "ElaText.h"
#include "ElaPushButton.h"

#include <QAction>
#include <QHBoxLayout>
#include <QHeaderView>
#include <QVBoxLayout>

#include "Q_TableViewModel.h"

BookQueryWidget::BookQueryWidget(QWidget *parent)
    : QWidget{parent}
{
    initUI();
}

void BookQueryWidget::initUI()
{
    QWidget *queryWidget = new QWidget(this);
    QHBoxLayout *query_layout = new QHBoxLayout(queryWidget);

    ElaText *le_query = new ElaText("分类:", this);
    le_query->setTextStyle(ElaTextType::Body);

    m_cBox_type = new ElaComboBox(this);
    // QList<QAction *> actions;
    // actions.append(new QAction("书名", this));
    // actions.append(new QAction("作者", this));
    // actions.append(new QAction("ISBN", this));
    // m_cBox_type->addActions(actions);
    m_cBox_type->addItems({"书名", "作者", "ISBN"});

    m_lEdit_query = new ElaLineEdit(this);
    m_lEdit_query->setPlaceholderText("请输入要查询的书名");

    m_btn_query = new ElaPushButton("搜索", this);
    m_btn_export = new ElaPushButton("导出", this);
    query_layout->addWidget(le_query);
    query_layout->addWidget(m_cBox_type);
    query_layout->addWidget(m_lEdit_query);
    query_layout->addWidget(m_btn_query);
    query_layout->addWidget(m_btn_export);

    // 表格
    m_tableView = new ElaTableView(this);
    QFont tableHeaderFont = m_tableView->horizontalHeader()->font();
    tableHeaderFont.setPixelSize(16);
    m_tableView->horizontalHeader()->setFont(tableHeaderFont);  // 设置列头字体大小
    m_tableView->setModel(new Q_TableViewModel());
    m_tableView->setSelectionBehavior(QAbstractItemView::SelectRows);   // 选中模式
    m_tableView->setAlternatingRowColors(true); // 行颜色交替
    m_tableView->setIconSize(QSize(38, 38));    // 设置图标大小
    m_tableView->verticalHeader()->setHidden(true);  // 设置行号显示
    m_tableView->horizontalHeader()->setMinimumSectionSize(60); // 设置列最小宽度
    m_tableView->verticalHeader()->setMinimumSectionSize(46);   // 设置行最小宽度
    m_tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); // 设置自动调整占比


    QVBoxLayout *main_layout = new QVBoxLayout(this);

    main_layout->addWidget(queryWidget, 1);
    main_layout->addWidget(m_tableView, 9);
    this->setLayout(main_layout);
}
